Skip to content

Conversation

daxpedda
Copy link
Contributor

Currently most mathematical operations on the twisted curve are implemented on ExtensiblePoint and take an ExtendedPoint as parameter. However, these operations often just convert to an ExtendedPoint internally (by multiplying T1 and T2).

This PR moves operations to "where they belong" to make sure we don't unnecessarily call these conversions. This achieves removing 1 multiplication from Decaf point add/sub operations from previously 9 in total, so a ~10% performance improvement.

There are a couple of other operations that are affected negligibly:

@daxpedda daxpedda changed the title Reduce unnecessary conversions to ExtensiblePoint and back Use ExtendedPoint/ExtensiblePoint more appropriately Jul 26, 2025
@daxpedda daxpedda changed the title Use ExtendedPoint/ExtensiblePoint more appropriately Use Extended/ExtensiblePoint more appropriately Jul 26, 2025
@daxpedda daxpedda force-pushed the ed448-extensible-conv branch 2 times, most recently from 1f57cdb to 60ba440 Compare August 3, 2025 17:29
@daxpedda daxpedda force-pushed the ed448-extensible-conv branch 4 times, most recently from 9406ee5 to ac38b61 Compare September 2, 2025 21:48
@daxpedda daxpedda force-pushed the ed448-extensible-conv branch from ac38b61 to ef3af59 Compare September 3, 2025 08:18
@tarcieri tarcieri merged commit 71c343f into RustCrypto:master Sep 3, 2025
35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants